<template>
  <sec-tree
    :props="props"
    :load="loadNode"
    lazy
    show-checkbox
    @check-change="handleCheckChange"
  ></sec-tree>
</template>
<script>
export default {
  data() {
    return {
      props: {
        label: 'name',
        children: 'zones',
      },
      count: 1,
    };
  },
  methods: {
    handleCheckChange(data, checked, indeterminate) {
      console.log(data, checked, indeterminate);
    },
    handleNodeClick(data) {
      console.log(data);
    },
    loadNode(node, resolve) {
      if (node.level === 0) {
        resolve([{ name: 'region1' }, { name: 'region2' }]);
      } else if (node.level > 3) {
        resolve([]);
      } else {
        let hasChild;
        if (node.data.name === 'region1') {
          hasChild = true;
        } else if (node.data.name === 'region2') {
          hasChild = false;
        } else {
          hasChild = Math.random() > 0.5;
        }
        setTimeout(() => {
          let data;
          if (hasChild) {
            data = [{
              name: `zone${this.count}`,
            }, {
              name: `zone${this.count += 1}`,
            }];
            this.count += 1;
          } else {
            data = [];
          }
          resolve(data);
        }, 500);
      }
    },
  },
};
</script>
